Method and system for estimating motion vector at high speed for low bit-rate coding

ABSTRACT

A method and system for estimating a motion vector (MV) at high speed for low bit-rate coding is provided. The method and system for estimating a motion vector includes (a) forming sum pyramids for a current block and search blocks of a search region (b) setting an initial C min  to C L ({right arrow over (d)} p ;λ) (here, C l ({right arrow over (d)} k ;λ) is an error measure at layer l which is determined by the following equation, and l and {right arrow over (d)} are 0 and (0,0), respectively: 
       C   l ( d   k ;λ)= SAD   l ( d   k )+λ R ( d   k ) 
     (c) if l is L, performing operation (d), if C l ({right arrow over (d)};λ)&gt;C min , performing operation (c) for a next candidate Motion Vector (MV) in the search region in a raster scanning method, after setting l to 0 (excluding (0,0) and {right arrow over (d)} p ), and otherwise performing operatoin (c) after setting l to l+1; (d) if C L ({right arrow over (d)};λ)&lt;C min , updating C min  as C L ({right arrow over (d)};λ), if {right arrow over (d)} is the last candidate MV, performing operation (e), and otherwise performing operation (c) with the next candidate, after setting l to 0; (e) estimating the MV by determining the MV having C min  as an optimal matcher. The motion vector estimation method is applied to a low bit-rate encoder, in which the ratio of motion vector is relatively high, so that motion vectors are estimated in real time.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims the benefit of Korean Application No. 2001-54458 filed Sep. 5, 2001 in the Korean Industrial Property Office, the disclosure of which is incorporated herein by reference.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] The present invention relates to a block-based moving picture coding method and system, and more particularly, to a method and system for estimating a motion vector at high speed for low bit-rate coding.

[0004] 2. Description of the Related Art

[0005] In a typical block-based moving picture encoder, most bits to be transmitted are taken by frame residuals, in which motion is compensated for, and motion vector information. In particular, in low bit-rate encoding, the ratio of motion vector information to total data becomes greater because the motion vector information is not reduced while the frame residual components are reduced in order to achieve low bit-rate transmission . Therefore, it is disadvantageous that the relative ratio of the motion vector information to the total data is not reduced.

[0006] In the conventional Block Matching Algorithm (BMA), each Motion Vector (MV) {right arrow over (d)}=(d_(x), d_(y)) is selected in a direction that minimizes encoding distortion, regardless of bit rates.

[0007] As shown in FIG. 1, which is a schematic diagram of a block matching algorithm, the motion vector MV of a predetermined block k is expressed by a coordinate difference between the block 102 of a current frame (t) and a matching block 104 of the previous frame (t-1). The matching block is found in a search region 106 centering around the current block. If a normal block size W is N×N, the size Ω of the search region 106 is (2W+1)×(2W+1).

[0008] The matching block in the search region 106 is a block in which the cost (not in the meaning of expense, but in the meaning of an error measure) is minimized, and is usually scanned in a raster scan method.

[0009] In general, the Sum of Absolute Differences (SAD) is frequently used as an error measure.

[0010] That is, among blocks in the search region 106, a block that satisfies the following formula 1 is determined as the matching block: $\begin{matrix} {\begin{matrix} \min \\ {\overset{\rightarrow}{d} \in \Omega} \end{matrix}{{SAD}\left( \overset{\rightarrow}{d} \right)}} & (1) \end{matrix}$

[0011] Where ${{{SAD}\left( \overset{\rightarrow}{d} \right)} = {\sum\limits_{\overset{\rightarrow}{r} \in W}{{{I\left( {\overset{\rightarrow}{r},t} \right)} - {I\left( {{\overset{\rightarrow}{r} + \overset{\rightarrow}{d}},{t - 1}} \right)}}}}},$

[0012] and I({right arrow over (r)}, t) is a brightness value (illuminance) at position {right arrow over (r)} and frame t.

[0013] Recently, in order to improve the efficiency of low bit-rate moving picture encoding, instead of motion estimation methods of simply minimizing encoding distortion, motion estimation methods for minimizing encoding distortion under a limited bit-rate condition have been developed.

[0014] However, in these methods, a global search method should be used to estimate an accurate motion vector, and a great number of operations of the method are repeated until the motion vector is estimated. Therefore, it is impossible to encode moving pictures in real time.

SUMMARY OF THE INVENTION

[0015] To solve the above problems, it is an object of the present invention to provide an improved method and system for estimating a motion vector, in which the motion vector is estimated in a global search method at high speed.

[0016] Additional objects and advantageous of the invention will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the invention.

[0017] To accomplish the above and other objects of the present invention, there is provided a method of estimating a motion vector, the method including

[0018] (a) forming sum pyramids for a current block and search blocks of a search region;

[0019] (b) setting an initial C_(min) to C^(L)({right arrow over (d)}^(p);λ) (where, C^(l)({right arrow over (d)}_(k);λ) is an error measure at layer l which is determined by the following equation, and l and {right arrow over (d)} are 0 and (0,0), respectively:

C ^(l)(d _(k);λ)=SAD ^(l)(d _(k))+λR(d _(k))

[0020] (c) if l is L, performing operation (d), if C^(l)({right arrow over (d)};λ)>C_(min), performing operation (c) for a next candidate Motion Vector (MV) in the search region in a raster scanning method, after setting l to 0 (excluding (0,0) and {right arrow over (d)}^(p)), and otherwise performing operation (c) after setting l to l+1;

[0021] (d) if C^(L)({right arrow over (d)};λ)<C_(min), updating C_(min) as C^(L)({right arrow over (d)};λ), if {right arrow over (d)} is the last candidate MV, performing operation (e), and otherwise performing operation (c) with the next candidate, after setting l to 0;

[0022] (e) estimating the MV by determining the MV having C_(min) as an optimal matcher.

BRIEF DESCRIPTION OF THE DRAWINGS

[0023] These and other objects and advantages of the present invention will become more apparent and more readily appreciated from the following description of the preferred embodiments, taken in conjunction with the accompanying drawings of which:

[0024]FIG. 1 is a schematic diagram of a block matching algorithm;

[0025]FIG. 2 is a schematic diagram of a method for obtaining the Sum of Absolute Differences (SAD) according to an embodiment of the present invention;

[0026]FIG. 3 is a schematic diagram of a sum pyramid;

[0027]FIG. 4 is a schematic diagram of a block matching process using a sum pyramid;

[0028]FIG. 5 is a block diagram showing a motion estimation processor and memories for an encoder and a decoder;

[0029]FIG. 6 is a flow chart showing a process of searching one of levels of the sum pyramid having a lowest SAD; and

[0030]FIG. 7 is a flow chart showing a process of searching a block having an optimal motion vector.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0031] Reference will now be made in detail to the present preferred embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference refers to the like elements throughout. The embodiments are described below in order to explain the present invention by referring to the figures.

[0032]FIG. 2 is a schematic diagram of a method of obtaining a sum of absolute differences (SAD). The SAD is the sum of differences of brightness values of each corresponding picture element in a block of a current frame and an arbitrary block in a search region.

[0033] That is, as shown in FIG. 2, in order to obtain the SAD for a 16×16 size block, 16×16 times subtractions, (16×16)−1 times additions, and 16×16 times absolute calculations are needed. Also, in order to search for a matching block in the search region by the global search method, this SAD calculation should be repeated for all blocks in the search region. Therefore, the number of operations in the global search method is very large.

[0034] Assuming that each frame is divided into N×N blocks, and {right arrow over (d)}_(k) denotes the MV of a block k, a motion estimation method with an optimal bit-rate limit is to find an MV field that minimizes a bit rate as well as distortion. That is, the method is for finding the MV field satisfying the following formula 2: $\begin{matrix} {{\begin{matrix} \min \\ \left( {d_{1},\ldots \quad,d_{k}} \right) \end{matrix}{\sum\limits_{k = 1}^{K}\quad {{SAD}\left( {\overset{\_}{d}}_{k} \right)}}} + {\lambda \quad {R\left( {\overset{\_}{d}}_{k} \right)}}} & (2) \end{matrix}$

[0035] Here, R({right arrow over (d)}_(k)) denotes the bit amount of the motion vector of block k and λ denotes a Lagrange coefficient. A Lagrange minimization method is a representative method for solving this kind of optimization problem.

[0036] Actually, R({right arrow over (d)}_(k)) may be obtained by using an H.263 Huffman codebook. However, since MVs are differential encoded using the Huffman codebook, it is very difficult to obtain the solution of formula 2, and a very large number of operations is needed.

[0037] Therefore, in the present invention, in order to simplify the problem, each of the MVs is treated as if each one is independently encoded, though the MVs are differentially encoded. Then, formula 2 can be redefined as the following formula 3 for each block: $\begin{matrix} {\begin{matrix} \min \\ {\overset{\rightarrow}{d} \in \Omega} \end{matrix}{C\left( {d_{k};\lambda} \right)}} & (3) \end{matrix}$

[0038] In formula 3, C(d_(k);λ)=SAD({right arrow over (d)}_(k))+λR({right arrow over (d)}_(k)).

[0039] Thus, the solution of formula 3 is not a globally optimal solution but a locally optimal solution.

[0040] In searching an MV, if a Full Search Algorithm (FSA) is used, the best performance can be obtained, but due to the large number of operations, it causes a problem when moving picture encoding in real time is necessary. The Coban and Mersereau Algorithm used a triangle inequality to solve this problem.

[0041] The triangle inequality is based on the fact that the absolute value of the difference of two arbitrary numbers is always greater than or equal to the difference of the absolute values of the two numbers (|A−B|≧|A|−|B|). If the triangle inequality is applied to formula 2, the following inequalities 4 and 5 are derived. $\begin{matrix} {{{\sum\limits_{\overset{\rightarrow}{r} \in W_{k}}{{I\left( {\overset{\rightarrow}{r},t} \right)}}} - {\sum\limits_{\overset{\rightarrow}{r} \in W_{k}}{{{{I\left( {{\overset{\rightarrow}{r} + \overset{\rightarrow}{d}},{t - 1}} \right)}}++}\lambda \quad {R_{k}\left( \overset{\rightarrow}{d} \right)}}}} \leq {\sum\limits_{\overset{\rightarrow}{r} \in W_{k}}{{{{{I\left( {\overset{\rightarrow}{r},t} \right)} - {I\left( {{\overset{\rightarrow}{r} + \overset{\rightarrow}{d}},{t - 1}} \right)}}}++}\lambda \quad {R_{k}\left( \overset{\rightarrow}{d} \right)}}}} & (4) \\ {{{\sum\limits_{\overset{\rightarrow}{r} \in W_{k}}{{I\left( {{\overset{\rightarrow}{r} + \overset{\rightarrow}{d}},{t - 1}} \right)}}} - {\sum\limits_{\overset{\rightarrow}{r} \in W_{k}}{{{{I\left( {\overset{\rightarrow}{r},t} \right)}}++}\lambda \quad {R_{k}\left( \overset{\rightarrow}{d} \right)}}}} \leq {\sum\limits_{\overset{\rightarrow}{r} \in W_{k}}{{{{{I\left( {\overset{\rightarrow}{r},t} \right)} - {I\left( {{\overset{\rightarrow}{r} + \overset{\rightarrow}{d}},{t - 1}} \right)}}}++}\lambda \quad {R_{k}\left( \overset{\rightarrow}{d} \right)}}}} & (5) \end{matrix}$

[0042] Assuming that the first term and second term of the left side of inequalities 4 are R and M({right arrow over (d)}), respectively, and the first term of the right side is SAD({right arrow over (d)}), inequalities 4 and 5 can be redefined as the following inequalities 6 and 7:

R−M({right arrow over (d)})+λR _(k)({right arrow over (d)})≦SAD({right arrow over (d)})+λR _(k)({right arrow over (d)})  (6)

M({right arrow over (d)})−R+λR _(k)({right arrow over (d)})≦SAD({right arrow over (d)})+λR _(k)({right arrow over (d)})  (7)

[0043] Assuming that {right arrow over (d)}_(min) satisfies ${\overset{\rightarrow}{d}}_{\min} = {{\arg \begin{matrix} \min \\ \overset{\_}{d} \end{matrix}{{SAD}\left( \overset{\_}{d} \right)}} + {\lambda \quad {R\left( \overset{\_}{d} \right)}}}$

[0044] exists up to the present, an MV having a smaller cost should satisfy the following inequalities 8 and 9:

R−M({right arrow over (d)})+λR _(k)({right arrow over (d)})≦SAD({right arrow over (d)} _(min))+λR _(k)({right arrow over (d)} _(min))  (8)

M({right arrow over (d)})−R+λR _(k)({right arrow over (d)})≦SAD({right arrow over (d)} _(min))+R _(k)({right arrow over (d)} _(min))  (9)

[0045] Inequalities 8 and 9 can be rearranged as the following inequalities 10 and 11:

R−SAD({right arrow over (d)})−λR _(k)({right arrow over (d)} _(min))≦M({right arrow over (d)})−λR_(k)({right arrow over (d)})  (10)

M({right arrow over (d)})+λR _(k)({right arrow over (d)})≦R+SAD({right arrow over (d)} _(min) )+λR _(k)({right arrow over (d)} _(min))  (11)

[0046] Inequality 11 is applied to all MVs in the search region and it is determined whether or not each MV satisfies inequality 11. Thus, inappropriate MVs are removed in advance. Accordingly, by avoiding unnecessary matching processes with the smaller number of operations, the entire number of calculations decreases.

[0047]FIG. 3 is a schematic diagram of a sum pyramid. First, as shown in FIG. 3, the sum pyramid of each search block I_(k) is formed. The size of each search block is N×N and N is 2^(L).

[0048] Referring to FIG. 3, if the size of a block at the lowest level is 16×16, the size of a block at the next level is 8×8 (=16/2×16/2), the size of a block at the next level is 4×4 (=8/2×8/2), the size of a block at the next level is 2×2, and the size of a block at the highest level is 1.

[0049] An upper level has a picture element value corresponding to a value obtained by adding four picture element values at the level immediately below.

[0050] At this time, the sum pyramid of I_(k) is defined as {I⁰ _(k), . . . , I^(l) _(k), . . . , I^(L) _(k)}. Here, the size of I^(l) _(k) is 2^(l)×2^(l), and I^(l−1) _(k)({right arrow over (r)}) is obtained by the following equation 12:

I ^(l−1) _(k)({right arrow over (r)})=I ^(l) _(k)(2{right arrow over (r)}−(1,1))+I ^(l) _(k)(2{right arrow over (r)}−(1,0))+I ^(l) _(k)(2{right arrow over (r)}−(0,1))+I ^(l) _(k)(2{right arrow over (r)})  (12)

[0051] The SAD at level l, that is, SAD^(l)({overscore (d)}_(k)), is defined as the following equation 13: $\begin{matrix} {{{SAD}^{l}\left( {\overset{\_}{d}}_{k} \right)} = {\sum\limits_{\overset{\rightarrow}{r} \in I_{k}}\quad {{{I_{k}^{l}\left( {\overset{\rightarrow}{r},t} \right)} - {I_{k}^{l}\left( {\overset{\rightarrow}{r},{\overset{\rightarrow}{d}}_{k},{t - 1}} \right)}}}}} & (13) \end{matrix}$

[0052] Here, I^(l) _(k)({right arrow over (r)},{right arrow over (d)}_(k),t−1) is a block corresponding to the pyramid at level l of I^(l) _(k)l ({right arrow over (r)}+{right arrow over (d)}_(k),t−1).

[0053] From the definition of equation 13, the following inequality 14 is always true:

SAD ^(L)({right arrow over (d)} _(k))≧. . . ≧SAD ⁰({right arrow over (d)} _(k)) . . . ≧SAD ⁰({right arrow over (d)} _(k))  (14)

[0054] That is, the SAD at an upper level is always equal to or less than the SAD at a level below.

[0055] The sum pyramid is formed for each of search blocks in the search region, and is also formed for block k of which motion vector is desired to estimate.

[0056] In FIG. 5 motion estimation (ME) proccessor 200 is connected to an encoding or decoding system through a bus 100. The sum pyramid of the block k is stored in a reference memory 300 while the sum pyramids of respective search blocks are stored in respective memories 400, 500. The ME proccessor 200 and memories 300, 400, 500 may be used for a decoder decoding motion vector data transmitted from an encoder in which the ME is performed.

[0057] Motion estimation depending only on inequality 14 will now be explained as shown in FIG. 6.

[0058] First, sum pyramids are formed before search in operation 601. For a frame of which motion is to be estimated first, the sum pyramid of the current frame and the previous frames is calculated. For the next frames, only sum pyramids of the current frame is calculated.

[0059] Motion estimation by the global search is performed .

[0060] In performing the global search, the SAD of the highest level of each block is compared with a minimum SAD up to the present (the SAD obtained in the lowest level). If the SAD of the highest level of a block is greater than a minimum SAD up to the present (the SAD obtained in the lowest level) in operation 602, the SAD at the lowest level of the block cannot be less than the minimum SAD up to the present. Therefore, a lowest one of the SADs of the highest levels is set to a matching block in operation 603, and then the next search block is searched.

[0061] Only when the SAD of the highest level of the sum pyramid of each block is equal to or less than the minimum SAD up to the present, the SAD of the lowest level of the block can be less than the minimum SAD up to the present, and therefore the SAD of the level immediatley below is compared in operation 604. A block having the lowest one of SADs corresponding levels is set to a matching block in operations 603, 604.

[0062]FIG. 4 is a schematic diagram of a block matching process using a sum pyramid. In FIG. 4, a 3-layer sum pyramid is shown. It is assumed that the left pyramid is the sum pyramid of the current block and the right pyramid is the sum pyramid of a search block.

[0063] Because the SAD at an upper layer is less than or equal to the SAD of the layer below, a block having smaller cost can be determined only by comparing the SADs of upper levels.

[0064] For example, in FIG. 4, if the SAD at layer 0 is greater than the minimum SAD up to the present, the SAD at the lowest level (layer 2) is greater than the minimum SAD up to the present. The SAD at the lowest level (layer 2) is obtained by formula 2, and requires much calculation. Therefore, by removing this calculation, the number of calculations for motion estimation can be reduced.

[0065] Inversely, if the SAD at layer 0 is equal to or less than the minimum SAD up to the present, the SAD at the lowest level (layer 2) may be less than the minimum SAD up to the present. In this case, the SAD at the next highest level is compared.

[0066] If the SAD at the next highest level is greater than the minimum SAD up to the present, the SAD at the lowest level (layer 2) is greater than the minimum SAD up to the present. Therefore, the SAD calculation at the lowest level (layer 2) can be removed.

[0067] On the contrary, if the SAD at the next highest level is equal to or less than the minimum SAD up to the present, the SAD at the lowest level (layer 2) may be less than the minimum SAD up to the present. Only in this case, the SAD calculation at the lowest level is performed.

[0068] Therefore, the process includes the operations of forming a first sum pyramid of a first searching block in a search region, the first sum pyramid including the layer 0 having minimum resolution data, such as SAD 0, the layer l having medium resolution data, such as SAD l, and the layer L having maximum resolution data, such as SAD L, making a first determination of whether one of the minimum resolution data of the layer 0, the first medium data of the layer l, and the maximum resolution data of the layer L of the searching block is less than a reference, generating a second searching block data in response to the first determination, forming a second sum pyramid of a second searching block of said search region, the second sum pyramid including a second layer 0 having second minimum resolution data, a second layer l having second medium resolution data, and a second layer L having maximum resolution data, making a second determination of whether one of the second minimum resolution data of the second layer 0, the second medium data of the second layer l, the second maximum resolution data of the second layer L of the second searching block is less than the reference after the first determination, generating a second searching block data in response to said second determination, and generating one of said first and second searching block data after comparing the first searching block data with the second searching block data.

[0069] The process makes the first determination without comparing the medium resolution data with the reference when the minimum resolution data, such as SAD 0 is greater than the reference and also makes the first determination without comparing the maximum resolution data, such as SAD L with the reference when one of the minimum and medium resolution data SAD 0 and SAD l is greater than the reference.

[0070] Thus, by removing calculation for a block in which the SAD in an upper level of the sum pyramid is greater than the minimum SAD up to the present, with simple calculations, the number of calculations for searching a block is greatly reduced.

[0071] The number of calculations for forming a sum pyramid for an N×N size block is roughly 8N² additions. Since each block matching process needs 2N²−1 calculations, this overhead roughly corresponds to 4 times block matching calculations.

[0072] Although the method of Coban and Mersereau Algorithm (CMA) may reduce the number of calculations more than the method which simply applies the FSA, the method of applying a condition based on inequality 11, however, cannot provide a satisfying search speed yet, and the speed is slow in low bit-rate encoding in real time.

[0073] Here, Lagrangian cost can be defined as the following equation 15:

C ^(l)(d _(k);λ)=SAD ^(l)(d _(k))+λR(d _(k))  (15).

[0074] From equation 15, the following inequality 16 is finally obtained:

C ^(L)({right arrow over (d)} _(k);λ)≧. . . ≧C ^(l)({right arrow over (d)} _(k);λ) . . . ≧C ⁰({right arrow over (d)} _(k);λ)  (16).

[0075] Considering inequality 16, a Rate-Constrained Fast Full Search Algorithm (RC-FFS) according to the present invention can be derived.

[0076] A motion estimation method according to the present invention will now be explained in detail as shown in FIG. 7.

[0077] First, a predictive motion vector ({right arrow over (d)}^(p)) for a current block is defined in operation 701.

[0078] It is assumed that cost corresponding to {right arrow over (d)}^(p) is the minimum cost up to the present C_(min). Because {right arrow over (d)}^(p) has great infuence on the entire calculation speed, determining {right arrow over (d)}^(p) is very important.

[0079] For example, as in H.263 motion vector encoding, {right arrow over (d)}^(p) can be determined through media filtering. Then, the RC-FFS for a predetermined λ can be explained as follows.

[0080] An initial C_(min) is set to C^(L)({right arrow over (d)}^(p);λ) in operation 702 after a current block is defined in operation 701. l and {right arrow over (d)} are set to 0 and (0,0), respectively in operation 703.

[0081] If l is L in operation 706, and if C^(L)({right arrow over (d)};λ)<C_(min) in operation 704, operation 712 is performed. If l is not L in operation 706, l is replaced with l+1 in operation 711. If C^(l)({right arrow over (d)};λ)>C_(min) in operation 704, operations 707, 708, 709, and 709 are performed for searching a next candidate MV in the search region in a raster scanning method after setting l to 0 (excluding (0,0) and {right arrow over (d)}^(p)) in operation 707 and d to d+1 in operation 708, and otherwise operation 704 is performed again after setting l to l+1 in operation 711.

[0082] If C^(L)({right arrow over (d)};λ)<C_(min) in operation 704 and 706, C_(min) is updated to C^(L)({right arrow over (d)};λ) in operation 712. If {overscore (d)} is the last candidate MV in operation 709, operation 710 is performed, and otherwise with the next candidate MV, l is set to 0 in operation 707, d is set to d+1 in operation 708, and then operation 704 is performed for the next searching block .

[0083] An MV having C_(min) is determined as an optimal matcher in operation 710.

[0084] The memory 300 may store C_(min). The encoder and decoder having the ME proccessor 200 and memories 300, 400, 500 generates the MV data of the each current block corresponding to one of the layers of the searching block.

[0085] The process as shown in FIG. 7 includes the operations of preparing a first layer having first layer motion vector data in a first searching block, making a first comparison between the first layer motion vector data and a reference, preparing a second layer having second layer motion vector data in the first searching block and making a second comparison between the second layer motion vector and the reference in response to the first comparison, and generating a first searching block data from one of the first layer motion vector data and the second layer motion vector data in response to one of the first comparison and the second comparison.

[0086] The decoder may be used for receiving the MV data transmitted from the encoder. The decoder is provided with a second processor and second memories as shown in FIG. 5. The processor receives an encoded data signal from the encoder. The MV data included in the encoded data signal is decoded by the second processor of the decoder, and the decoded MV data may include a first layer motion vector data for a current block or a second layer motion vector data for a next current block. The memories store the decoded MV data. The first layer motion vector data and the second layer motion vector data each represent the respective error measure of one of the highest layer 0, the middle layer 1, and the lowest layer 2 in the respective best matching searching block. The first layer motion vector data corresponds to a first current block, and a second layer motion vector data corresponds to a second current block which is disposed adjacent to said first block. The first layer motion vector data may be different from or greater than the second motion vector data in resolution.

[0087] Table 1 shows the result of a simulation. The simulation is carried out for two Quadrature Common Interface Format (QCIF) images. Each sequence of which QCIF images is obtained from a foreman and a car-phone, respectively, is formed of 300 frames. The encoding frame rate is 15 Hz. Because the size of a macroblock is 16×16, [l is 4] L is 4, and the size of a motion search region is 31×31. The bit amount of an MV is obtained from the H.263 Huffman codebook.

[0088] The RC-FFS is compared with Coban-Mersereau Algorithm (CMA) and Rate-Constrained Full Search Algorithm (RC-FSA). TABLE 1 foreman car-phone RC-FFS RC-FSA CMA RC-FFS RC-FSA CMA λ = 0  MV bit-rate 441 389 PSNR(dB) 33.2 33.9 ANOP 52.7 2347 431.6 62.4 2347 362.9 λ = 10 MV bit-rate 370 329 PSNR(dB) 33.1 33.9 ANOP 39.6 2347 340.6 36.5 2347 245.5 λ = 20 MV bit-rate 338 311 PSNR(dB) 33.1 33.9 ANOP 35.6 2347 271.6 31.7 2347 180.7 λ = 30 MV bit-rate 318 297 PSNR(dB) 33.0 33.8 ANOP 23.8 2347 220.7 29.2 2347 141.7

[0089] An Average Number of OPeration (ANOP) for a picture element is obtained by additions and sum of absolute values. The ANOP includes the operation number overhead for forming sum pyramids. The MV bit amount and PSNR are the same in the above three methods because all are global search methods.

[0090] Noticeably, as λ increases, the MV bit rate decreases in line with slight PSNR decrease (0.1-0.2 dB).

[0091] The ANOP of the RS-FSA is always 2347. However, the ANOPs of two other methods change with respect to the characteristcs of an image or λ. When λ=0, the ANOP of the RC-FFS is just 2.2-2.7% of that of the RC_FSA, and 12.2-15.5% of that of the CMA. Also, similarly to the MV bit amount, as λ increases, the ANOPs of the RC-FFS and the CMA decrease more. For example, when λ=0, the ANOP of the RC-FFS is just 1.2-1.4% of that of the RC-FSA.

[0092] In determining λ, an optimization method such as a repetitive method may be used, but its number of operations is too high. Instead, it may be preferable to use the statistical λ values obtained by simulations.

[0093] Actually, it is shown in the simulation that the PSNR did not change greatly with respect to λ values. As an example, by applying one λ value to all frames, motion estimation can be performed.

[0094] The motion vector estimation method according to the present invention is at maximum 8 times faster than the CMA, and at maximum 4-5 times faster than the three step search method.

[0095] Therefore, the motion vector estimation method according to the present invention is applied to a low bit-rate encoder, in which the ratio of motion vector is relatively high, so that motion vectors are estimated in real time.

[0096] Although a few preferred embodiments of the present invention have been shown and described, it would be appreciated by those skilled in the art that changes may be made in this embodiment without departing from the principles and sprit of the invention, the scope of which is defined in the claims and their equivalents. 

What is claimed is:
 1. A method of estimating a motion vector (MV), comprising: (a) forming sum pyramids for a current block and search blocks of a search region, said sum pyramids including a plurality of layers (l) wherein l is in the range between 0 and L; (b) setting an initial C_(min) to C^(L)({right arrow over (d)}^(p);λ) (where, C^(l)({right arrow over (d)}_(k);λ) is an error measure at layer (l) which is determined by the following equation, and l and {right arrow over (d)} are 0 and (0,0), respectively: C ^(l)(d _(k);λ)=SAD ^(l)(d _(k))+λR(d _(k)) (c) if l is L, performing operation (d), if C^(l)({right arrow over (d)};λ)>C_(min), performing operation (c) for a next candidate Motion Vector (MV) in the search region in a raster scanning method, after setting l to 0 (excluding (0,0) and {right arrow over (d)}^(p)), and otherwise performing operation (c) after setting l to l+1; (d) if C^(L)({right arrow over (d)};λ)<C_(min), updating C_(min) as C^(L)({right arrow over (d)};λ),if {right arrow over (d)} is the last candidate MV, performing operation (e), and otherwise performing operation (c) with the next candidate, after setting l to 0; (e) estimating the MV by determining the MV having C_(min) as an optimal matcher.
 2. The method of claim 1, wherein the current error measure in operation (b) is determined by median filtering.
 3. The method of claim 1, wherein the sum pyramid of an arbitrary block I_(k) is defined as I⁰ _(k), . . . , I^(l) _(k), . . . , I^(L) _(k), and I^(l−1) _(k)({right arrow over (r)}) is obtained by the following equation: I ^(l−1) _(k)({right arrow over (r)})=I ^(l) _(k)(2{right arrow over (r)}−(1,1))+I ^(l) _(k)(2{right arrow over (r)}−(1,0)) +I ^(l) _(k)(2{right arrow over (r)}−(0,1))+I ^(l) _(k)(2{right arrow over (r)})
 4. The method of claim 3, wherein the size of I^(l) _(k) is 2^(l)×2^(l).
 5. The method of claim 1, wherein the error measure is ${{\begin{matrix} \min \\ \left( {d_{1},\ldots \quad,d_{k}} \right) \end{matrix}{\sum\limits_{k = 1}^{K}\quad {{SAD}\left( {\overset{\_}{d}}_{k} \right)}}} + {\lambda \quad {R\left( {\overset{\_}{d}}_{k} \right)}}},{where},{{{SAD}\left( \overset{\rightarrow}{d} \right)} = {\sum\limits_{\overset{\rightarrow}{r} \in W}{{{I\left( {\overset{\rightarrow}{r},t} \right)} - {I\left( {{\overset{\rightarrow}{r} + \overset{\rightarrow}{d}},{t - 1}} \right)}}}}},{I\left( {\overset{\rightarrow}{r},t} \right)}$

brightness value (illuminance) at position {right arrow over (r)} and frame t, R({right arrow over (d)}_(k)) denotes the bit amount of the motion vector of block k, and λ denotes a Lagrange coefficient.
 6. The method of claim 5, wherein λ is a statistical value obtained by simulations. 